Skip to content

DDD (Domain Driven Design)

Rildosan edited this page Apr 1, 2022 · 14 revisions

Introdução:
Os profissionais de desenvolvimento de softwares reconhecem que a modelagem de domínios é essencial para o design de softwares. Através de modelos de domínios é possível expressar funcionalidades e traduzi-las em uma implementação de software que realmente atenda às necessidades dos clientes e usuários.
Contudo, existem poucos recursos práticos que explicam como incorporar uma modelagem de domínios eficiente no processo de desenvolvimento de softwares. O DDD (Domain-Driven Design) atende essa necessidade.

O que é DDD?
“É um conjunto de princípios com foco em domínio, exploração de modelos de formas criativas e definir e falar a linguagem Ubíqua, baseado no contexto delimitado.”

O que é domínio?
Domínio é o coração do negócio. É baseado em um conjunto de ideias, conhecimento e processos de negócio. É a razão do negócio existir. Sem o domínio todo o sistema, todos os processos auxiliares, não servirão para nada.
Se uma empresa existe, é porque ela tem um “core business” e, geralmente, esse ele é composto pelo domínio principal.
Conclusão: Sempre que se falamos em domínio, estaremos falando da razão daquele software existir.

A referência quando o assunto é DDD é o livro Eric Evans:

Resenha do Livro:
Este não é um livro sobre tecnologias específicas. Ele oferece aos leitores uma abordagem sistemática com relação ao domain-driven design, ou DDD, apresentando um conjunto abrangente de práticas ideais de design, técnicas baseadas em experiências e princípios fundamentais que facilitam o desenvolvimento de projetos de software que enfrentam domínios complexos. Reunindo práticas de design e implementação, este livro incorpora vários exemplos baseados em projetos que ilustram a aplicação do design dirigido por domínios no desenvolvimento de softwares na vida real.Com este livro em mãos, desenvolvedores orientados a objetos, analistas de sistema e designers terão a orientação de que precisam para organizar e concentrar seu trabalho, criar modelos de domínio valiosos e úteis, e transformar esses modelos em implementações de software duradouras e de alta qualidade.

Mais alguns livros interessantes sobre DDD:


Para ir além:
Vídeo:
Vídeo sobre DDD com Wesley Willians
Tutoriais:
Um bom post sobre DDD: O que é DDD?
DDD (Domain-Driven Design) com .NET
Este tutorial aborta dois temas importantes: DDD e Microserviços: Projetar um microsserviço orientado a DDD
DDD não é arquitetura em camadas